package com.kmxd.ams.infra.archive.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 门类配置-元数据
 *
 * @author ZuoLG
 * @since 2022-07-15
 */
@Data
@TableName("s_archive_field")
public class ArchiveField implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  private Long id;

  /** 门类配置id 关联s_archive_type表主键 */
  private Long archTypeId;

  /** 所属表名 */
  private String tableId;

  /** 数据库字段 */
  private String dbFieldKey;

  /** 字段说明 */
  private String dbFieldName;

  /** 是否允许为空0否 1是 */
  private Boolean dbIsNull;

  /** 数据库字段类型 */
  private String dbType;

  /** 数据库字段长度 */
  private Integer dbLength;

  /** 表单控件长度 */
  private Integer fieldLength;

  /** 引用的字典code 0无, sex性别, gb稿本, jbkd脊背宽度, purposeofborrow借阅目的, safecode实体登记, secret密级 */
  private String dictField;

  /** 著录控件 单行输入、多行输入、选人、选部门、日历、单选下拉列表、多选下拉列表, */
  private String widget;

  /** 自动填写 {user_id}{user_name}{departmentid}{departmentname}{year}{lastyear}{date}{datetime} */
  private String widgetDefault;

  /** 是否继承上级 0否，1是 */
  private Boolean attrExtends;

  /** 上级table_id 上级表名 */
  private String extendsTableId;

  /** 上级字段名 上级字段名 */
  private String extendsField;

  /** 是否统计下级 0否，1是 */
  private Boolean attrSummary;

  /** 下级表名 下级表名 */
  private String summaryTableId;

  /** 下级字段名 下级字段名 */
  private String summaryField;

  /** 统计下级算法 最大值max，最小值min，平均值avg，合计sum，计录数count */
  private String summaryType;

  /** 数据默认值 */
  private String dbDefault;

  /** 数据出现重复时是否提醒 0否，1是 */
  private Boolean attrRepeatWarn;

  /** 数据出现重复时是否提醒(归档) */
  private Boolean attrRepeatWarnArrange;

  /** 数据为空时是否提醒 0否，1是 */
  private Boolean attrEmptyWarn;

  /** 整理库 数据为空时是否提醒 0否，1是 */
  private Boolean attrEmptyWarnArrange;

  /** 是否利用可见界面 0否，1是（原字段attrshow） */
  private Boolean attrUse;

  /** 是否列表显示 0否，1是（原字段attrshow） */
  private Boolean attrList;

  /** 是否允许编辑 0否，1是 */
  private Boolean attrEdit;

  /** 追加复制 0否，1是 */
  private Boolean attrCopy;

  /** 类型 0系统内置版本，1用户版本 */
  private Integer attrSystem;

  /** 占位符个数 */
  private Integer colSpan;

  /** 控件界面高度 */
  private Integer rowSpan;

  /** 是否需要更新索引 是否需要更新索引，1需要，其它不需要 */
  private Boolean esIndex;

  /** 是否是数据库索引0不是，1是 */
  private Boolean dbIndex;

  /** 是否AIP封装 0不封装 1封装 */
  private Boolean xmlExport;

  /** 封装别名 自定义名称以符合da/t48元数据名称要求 */
  private String xmlAlias;

  /** 字典值存储方式 name、value */
  private String dictStorage;

  /** 字典值显示方式 name、value */
  private String dictShow;

  /** 自定义表头宽度 */
  private Integer headerWidth;

  /** 元数据分组，元数据分组，0：内容，1：归档情况，2：管理信息，3：卷信息，4：其它信息 */
  private Long fieldGroup;

  /** 列表排序 */
  private Integer sortList;

  /** 排序 */
  private Integer sort;

  /** 前端检索字段 0否，1是 */
  private Boolean attrSearch;

  /** 创建人 */
  @TableField(fill = FieldFill.INSERT)
  private Long createBy;

  /** 创建时间 */
  @TableField(fill = FieldFill.INSERT)
  private Date createTime;

  /** 更新人 */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Long updateBy;

  /** 更新时间 */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private Date updateTime;
}
